home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / t_os / tool / vdgear / src / tm.c < prev    next >
Text File  |  1994-11-16  |  3KB  |  123 lines

  1. /*
  2.  *    golo
  3.  */
  4.  
  5. #include    <msdos.cf>
  6. #include    <stdio.h>
  7. #include    <stdlib.h>
  8. #include    <string.h>
  9. #include    <egb.h>
  10.  
  11. char    *TM_work;
  12. char    *TM_para;
  13. int    r[4],g[4],b[4];
  14.  
  15. void    TM_set_pal(int i, char r, char g, char b)
  16.     {
  17.     DWORD(TM_para+ 0) = 1;
  18.     DWORD(TM_para+ 4) = i;
  19.      BYTE(TM_para+ 8) = b;
  20.      BYTE(TM_para+ 9) = r;
  21.      BYTE(TM_para+10) = g;
  22.      BYTE(TM_para+11) = 0;
  23.     EGB_palette(TM_work,1,TM_para);
  24.     }
  25.  
  26. void    TM_screen()
  27.     {
  28.     EGB_init(TM_work,1536);
  29.     EGB_resolution(TM_work,0, 3);
  30.  
  31.     EGB_displayPage(TM_work,0,1);
  32.     EGB_writePage(TM_work,0);
  33.     EGB_color(TM_work,1,0);
  34.     EGB_clearScreen(TM_work);
  35.     EGB_displayStart(TM_work,3,640,480);
  36.     }
  37.  
  38. void    TM_load()
  39.     {
  40.     FILE    *fp;
  41.     char    *buf;
  42.  
  43.     buf = malloc(513);
  44.  
  45.     fp = fopen("good_chy.tm", "rb");    /* デ-タ読み込み */
  46.     fread(buf, 1, 513, fp);
  47.     fclose(fp);
  48.  
  49.     r[0] = 192; g[0] =  96; b[0] =  64;
  50.     r[1] = 240; g[1] = 192; b[1] = 160;
  51.     r[2] =   0; g[2] =   0; b[2] = 160;
  52.     r[3] = 255; g[3] = 255; b[3] = 255;
  53.  
  54.     TM_set_pal( 2,192, 96, 64);            /* パレット */
  55.     TM_set_pal( 3,240,192,160);
  56.     TM_set_pal(11,  0,  0,160);
  57.     TM_set_pal(14,  0,  0,  0);
  58.     TM_set_pal(15,255,255,255);
  59.  
  60.     DWORD(TM_para+ 0) = (unsigned int)buf;    /* 表示 */
  61.      WORD(TM_para+ 4) = getds();
  62.      WORD(TM_para+ 6) = 304;
  63.      WORD(TM_para+ 8) = 224;
  64.      WORD(TM_para+10) = 335;
  65.      WORD(TM_para+12) = 255;
  66.     EGB_putBlock(TM_work, 0, TM_para);
  67.     free(buf);
  68.     }
  69.  
  70. void    TM_main()
  71.     {
  72.     int    z,i;
  73.  
  74.     TM_work = malloc(1536);
  75.     TM_para = malloc(64);
  76.  
  77.     TM_screen();
  78.     TM_load();
  79.  
  80.     for (z=16 ; z>1 ; z--)            /* 縮小 */
  81.         {
  82.         EGB_displayStart(TM_work,2,z,z);
  83.         EGB_displayStart(TM_work,1,320-(320/z),240-(240/z));
  84.         TM_set_pal(15,255,255,255);
  85.         }
  86.  
  87.     EGB_textZoom(TM_work,1,16,16);    /* 文字表示 */
  88.     EGB_fontStyle(TM_work,0);
  89.     EGB_color(TM_work,0,14);
  90.     WORD(TM_para+0) = 256;
  91.     WORD(TM_para+2) = 280;
  92.     WORD(TM_para+4) = 16;
  93.     strcpy((char *)(TM_para+6),"PRESENTS");
  94.     EGB_sjisString(TM_work,TM_para);
  95.  
  96.     for (z=0 ; z<256 ; z+=2)        /* フェ-ドイン */
  97.         { TM_set_pal(14,z,z,z); }
  98.  
  99.     for (z=0 ; z<32 ; z++)            /* フェ-ドアウト */
  100.         {
  101.         for (i=0 ; i<4 ; i++)
  102.             {
  103.             r[i]-=8; g[i]-=8; b[i]-=8;
  104.  
  105.             if (r[i]<0)    { r[i] = 0; }
  106.             if (g[i]<0)    { g[i] = 0; }
  107.             if (b[i]<0)    { b[i] = 0; }
  108.             }
  109.  
  110.         TM_set_pal( 2,r[0], g[0], b[0]);
  111.         TM_set_pal( 3,r[1], g[1], b[1]);
  112.         TM_set_pal(11,r[2], g[2], b[2]);
  113.         TM_set_pal(14,r[3], g[3], b[3]);
  114.         TM_set_pal(15,r[3], g[3], b[3]);
  115.         }
  116.  
  117.     EGB_color(TM_work,1,0);
  118.     EGB_clearScreen(TM_work);
  119.  
  120.     free(TM_work);
  121.     free(TM_para);
  122.     }
  123.